package org.example.domain.po;

import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.util.List;

import lombok.Data;
import org.example.enums.RolePriceLimit;
import org.example.enums.RoleType;

/**
 * 角色表
 * @TableName erp_role
 */
@TableName(value ="erp_role", autoResultMap = true)// autoResultMap：自动结果映射
@Data
public class ErpRole{
    /**
     * 主键
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 名称
     */
    private String name;

    /**
     * 类型：全部数据/个人数据/本机构数据
     */
    private RoleType type;

    /**
     * 价格屏蔽 1-屏蔽采购价 2-屏蔽零售价 3-屏蔽销售价
     */
    private String priceLimit;

    /**
     * 备注
     */
    private String description;

    /**
     * 启用
     */
    private Boolean enabled;

    /**
     * 租户id
     */
    private Long tenantId;

    /**
     * 删除标记，0未删除，1删除
     */
    @TableLogic
    private String deleteFlag;
    
    public void setRoleType(Integer roleTypeInt) {
        this.type = RoleType.fromValue(roleTypeInt);
    }
    
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", name=").append(name);
        sb.append(", type=").append(type);
        sb.append(", priceLimit=").append(priceLimit);
        sb.append(", description=").append(description);
        sb.append(", enabled=").append(enabled);
        sb.append(", tenantId=").append(tenantId);
        sb.append(", deleteFlag=").append(deleteFlag);
        sb.append("]");
        return sb.toString();
    }
}